/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.platform.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * 实体类
 *
 * @author BladeX
 * @since 2020-11-05
 */
@Data
@ApiModel(value = "ProductType对象", description = "ProductType对象")
public class ProductType implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	* 主键ID
	*/
		@ApiModelProperty(value = "主键ID")
		@TableId(value = "id", type = IdType.AUTO)
	private Integer id;
	/**
	* 产品名称
	*/
		@ApiModelProperty(value = "产品名称")
		private String productName;
	/**
	* 产品编号
	*/
		@ApiModelProperty(value = "产品编号")
		private String productId;
	/**
	* 一级品类名称
	*/
		@ApiModelProperty(value = "一级品类名称")
		private String categoryName;
	/**
	* 一级品类编码
	*/
		@ApiModelProperty(value = "一级品类编码")
		private String categoryCode;
	/**
	* 二级品类名称
	*/
		@ApiModelProperty(value = "二级品类名称")
		private String categorySecondName;
	/**
	* 二级品类编码
	*/
		@ApiModelProperty(value = "二级品类编码")
		private String categorySecondCode;
	/**
	* 三级品类编码
	*/
		@ApiModelProperty(value = "三级品类编码")
		private String categoryThreeCode;
	/**
	* 三级品类名称
	*/
		@ApiModelProperty(value = "三级品类名称")
		private String categoryThreeName;
	/**
	* 所属机构
	*/
		@ApiModelProperty(value = "所属机构")
		private String affiliatedInstitutions;
	/**
	* 所属机构编号
	*/
		@ApiModelProperty(value = "所属机构编号")
		private String affiliatedInstitutionsCode;
	/**
	* 消息协议
	*/
		@ApiModelProperty(value = "消息协议")
		private String messageProtocolName;
	/**
	* 消息协议编号（协议表编号）
	*/
		@ApiModelProperty(value = "消息协议编号（协议表编号）")
		private String messageProtocolCode;
	/**
	* 传输协议
	*/
		@ApiModelProperty(value = "传输协议")
		private String transportProtocol;
	/**
	* 存储策略
	*/
		@ApiModelProperty(value = "存储策略")
		private String storageStrategy;
	/**
	* 设备类型(1:直连设备;2:网关子设备;3:网关设备)
	*/
		@ApiModelProperty(value = "设备类型(1:直连设备;2:网关子设备;3:网关设备)")
		@JsonSerialize(nullsUsing = NullSerializer.class)
		private Integer equipmentType;
	/**
	* 描述
	*/
		@ApiModelProperty(value = "描述")
		private String describeText;
	/**
	* 图标url
	*/
		@ApiModelProperty(value = "图标url")
		@TableField("icon_url")
	private String iconUrl;
	/**
	* 是否已删除
	*/
		@ApiModelProperty(value = "是否已删除")
		@JsonSerialize(nullsUsing = NullSerializer.class)
		private Integer isDeleted;
	/**
	* 修改时间
	*/
		@ApiModelProperty(value = "修改时间")
		private Long updateTime;
	/**
	* 添加时间
	*/
		@ApiModelProperty(value = "添加时间")
		private Long insertTime;
	/**
	* 1：启动  0禁用
	*/
		@ApiModelProperty(value = "1：启动  0禁用")
		@JsonSerialize(nullsUsing = NullSerializer.class)
		private Integer state;

		/**
		 * 物模型json
		 */
		@ApiModelProperty(value = "物模型json")
		private String propertieModel;

		/**
		 * 创建人
		 */
		@ApiModelProperty(value = "创建人id")
		private Long createUser;
/*
	@ApiModelProperty(value = "租户编号")
	private String tenantId;*/

	/**
	 * 证书名称
	 */
	@ApiModelProperty(value = "证书名称")
	private String certificateName;
	/**
	 * 证书编号
	 */
	@ApiModelProperty(value = "证书编号")
	private String certificateCode;
}
